package estacion.persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import estacion.dominio.Persona;
import estacion.dominio.Tienda;

public class FPTienda {

	public static void insertTienda(Tienda tien) throws Exception {
		String SQL="Insert into tienda(codigo_tienda, tipo_producto,dinero_recaudado) values("+tien.getCodigo_Tienda()+",'"+tien.getTipo_producto()+"',"+tien.getDinero_recaudado()+")";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			p=bd.prepareStatement(SQL);
			p.executeUpdate();
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
	}

	//Elmina la tienda, dado el codigo de la tienda
	public static void deleteTienda(int cod_tienda) throws Exception {
		String SQL="Delete from tienda where codigo_tienda=?";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			p=bd.prepareStatement(SQL);
			p.setInt(1, cod_tienda);
			p.executeUpdate();
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}	
	}
	
	//Te devuelve la informacion de la tienda, segun el codigo de la tienda proporcionado
	public static Tienda consultTienda(String tip_producto) throws Exception {
		Tienda tien=null;
		String SQL="Select * from tienda where tipo_producto='"+tip_producto+"'";
		
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			p=bd.prepareStatement(SQL);
			ResultSet r=p.executeQuery();
			while (r.next()) {
				tien=new Tienda();
				tien.setCodigo_Tienda(r.getInt("codigo_tienda"));
				tien.setTipo_producto(r.getString("tipo_producto"));
				tien.setDinero_recaudado(r.getInt("dinero_recaudado"));
			}			
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
		return tien;
	}
	
	
	
	
	public static Tienda consultTiendaporCodigo(int cod_tienda) throws Exception {
		Tienda tien=null;
		String SQL="Select * from tienda where codigo_tienda="+cod_tienda+"";
		
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			p=bd.prepareStatement(SQL);
			ResultSet r=p.executeQuery();
			while (r.next()) {
				tien=new Tienda();
				tien.setCodigo_Tienda(r.getInt("codigo_tienda"));
				tien.setTipo_producto(r.getString("tipo_producto"));
				tien.setDinero_recaudado(r.getInt("dinero_recaudado"));
			}			
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
		return tien;
	}
	
	
	
	
	public static void modificarTienda(Tienda tien, int cod_tienda) throws Exception{
		
		String SQL="UPDATE tienda SET tipo_producto='"+tien.getTipo_producto()+"', dinero_recaudado="+tien.getDinero_recaudado()+"  where codigo_tienda = "+cod_tienda;
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement update=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			update=bd.prepareStatement(SQL);
			update.executeUpdate();
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
	}
	
	public static Vector<Tienda> getTiendas() throws Exception {
		Vector<Tienda> result=new Vector<Tienda>();
		String SQL="Select * from tienda";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Gestor_bbdd.get().getBD();
			p=bd.prepareStatement(SQL);
			ResultSet r=p.executeQuery();
			while (r.next()) {
				Tienda c=new Tienda();
				c.setCodigo_Tienda(r.getInt("codigo_tienda"));
				c.setTipo_producto(r.getString("tipo_producto"));
				c.setDinero_recaudado(r.getDouble("dinero_recaudado"));
				result.add(c);
			}			
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
		return result;
	}
}

